package LeetCode;

public class TestOffer24 {
    public ListNode reverseList(ListNode head) {
        //递归调用
        if (head == null || head.next == null) {
            return head;
        }
        ListNode sec = head.next;
        ListNode newHead = reverseList(sec);
        sec.next = head;
        head.next = null;
        return newHead;

        //头插法
//        if (head == null || head.next == null) {
//            return head;
//        }else{
//            ListNode dummyHead = new ListNode(5001);
//            while (head!=null){
//                ListNode node = new ListNode(head.val);
//                node.next=dummyHead.next;
//                dummyHead.next=node;
//                head=head.next;
//            }
//            return dummyHead.next;
//        }

        //原地移动法
//        if (head==null||head.next==null){
//            return head;
//        }else {
//            ListNode prev = null;
//            ListNode cur = head;
//            while (cur != null) {
//                ListNode next = cur.next;
//                cur.next = prev;
//                prev = cur;
//                cur = next;
//            }
//            return prev;
//        }
    }
}
